package com.dys.testoptional12;

import java.util.Optional;

/**
 * @className: com.dys.testoptional12.OptionalTest01
 * @description: com.dys.testoptional12
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/09/02 下午10:42
 */
public class OptionalTest01 {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        testOptional();
    }

    /**
     * 模拟空指针异常
     */
    private static void testNull() {
        // String username = "张三";
        String username = null;
        if (username != null) {
            System.out.println("字符串的长度为：" + username.length());
        } else {
            System.out.println("字符串为空");
        }
    }

    /**
     * Optional对象的创建方式
     */
    private static void testOptional() {
        // 1.方式1：通过of()方法，of()方法是不支持null的
        Optional<String> zs = Optional.of("张三");
        System.out.println(zs);
        // Optional<Object> o = Optional.of(null);

        // 2.方式2：通过ofNullable方法 支持null
        Optional<String> ls = Optional.ofNullable("李四");
        System.out.println(ls);
        Optional<Object> o = Optional.ofNullable(null);
        System.out.println(o);

        // 3.方式3：通过empty()直接创建一个Optional对象
        Optional<Object> empty = Optional.empty();
        System.out.println(empty);
    }
}
